//通过服务演示效果
//使用 cookie-parser 实现功能
const express = require('express');
//1. 安装
//2. 导入
const session = require("express-session");
const MongoStore = require('connect-mongo');

const app = express();
//3. 设置中间件
app.use(session({
    name: 'sid',   //设置cookie的name，默认值是：connect.sid
    secret: 'ajfiopejaiojoJiofewajiofeaejwiofa', //参与加密的字符串（又称签名）
    saveUninitialized: false, //是否为每次请求都设置一个cookie用来存储session的id
    resave: true,//是否在每次请求时重新保存session
    store:MongoStore.create({
        mongoUrl: 'mongodb://127.0.0.1:27017/shop' //数据库的连接配置
    }),
    cookie: {
        httpOnly: true, // 开启后前端无法通过 JS 操作
        maxAge: 1000 * 5 * 60 // 这一条 是控制 sessionID 的过期时间的！！！
    }
}));

//设置路由
app.get('/set-session', (req, res) => {
    //4-1 设置
    req.session.name = 'zhangsan';
    req.session.email = '123@qq.com';

    res.send('设置');
})

//读取 session
app.get('/get-session', (req, res) => {
    //4-2 读取
    res.send(`当前用户的用户名为:${req.session.name} <br> 邮箱为: ${req.session.email}`);
});

//删除 session
app.get('/clear-session', (req, res) => {
    //4-3 调用 destroy 方法完成清理
    req.session.destroy(() => {
        res.send('清理完成');
    });
});

app.listen(8090, () => {
    console.log('成功');
})